package com.tfxy.hxl.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tfxy.hxl.entity.Course;
import com.tfxy.hxl.entity.vo.CourseFrontVo;
import com.tfxy.hxl.entity.vo.CourseQuery;

import java.util.Map;

/**
 * 课程服务接口
 * 继承MyBatis-Plus的IService，提供基础CRUD功能
 */
public interface CourseService extends IService<Course> {

    /**
     * 多条件分页查询课程
     * 
     * @param pageParam 分页参数
     * @param courseQuery 查询条件
     */
    void pageQuery(Page<Course> pageParam, CourseQuery courseQuery);

    /**
     * 前台课程查询（支持多种排序）
     * 
     * @param pageCourse 分页参数
     * @param courseFrontVo 前台查询条件
     * @return 查询结果Map
     */
    Map<String, Object> getCourseFrontInfo(Page<Course> pageCourse, CourseFrontVo courseFrontVo);

    /**
     * 发布课程
     * 
     * @param courseId 课程ID
     * @return 发布结果
     */
    boolean publishCourse(Long courseId);

    /**
     * 获取课程详情（包含浏览量统计）
     * 
     * @param courseId 课程ID
     * @return 课程详情
     */
    Course getCourseDetail(Long courseId);
}
